// 封装云函数
function getInfo(cb){
  wx.cloud.callFunction({
    name:'myinfo',
    success: res=>{
      cb && cb(res.result.data[0])
    }
  })
}

function postInfo(data, cb){
  data || (data = {
    academy:'电子信息',
    avatar:'url',
    nickname:'Jane',
    school:'西工大'
  })
  
  wx.cloud.callFunction({
    name:'postInfo',
    data,
    success:res=>{
      cb && cb(res)
      //成功后具体操作
    }
  })
}

function updateInfo(info){
  const db = wx.cloud.database()
  const _ = db.command
  wx.cloud.callFunction({
    name:'myinfo',
    success:res=>{
      const myid = res.result.data[0]._openid
      db.collection('users')
      .where({
        _openid:myid
      })
      .update({
        data:{
          info
        }
      })
    }
  })
}

function getAllCards(){
  return new Promise(function(resolve,reject){
    const db = wx.cloud.database()
    const _ = db.command
    db.collection('cards').get()
      .then(res=>{
        resolve(res.data)
    })
  })
}

function getCardById(_id){
  return new Promise(function(resolve,reject){
    const db = wx.cloud.database()
    const _ = db.command
    db.collection('cards')
    .where({
     _id
    })
    .get()
    .then(res=>{
      resolve(res.data[0])
    })
  })
}

function addComment(data, cb){
  data || (data = {
    _id:'658e9e576097a5a50c49206727e02765',
    content:'啦啦啦',
    publishTime:'2021/05/17 21:12:06'
  })
  wx.cloud.callFunction({
    name:'addComment',
    data,
    success:res=>{
      cb && cb()
      // console.log('调用成功')
    },
    fail:err=>{
      console.log('调用失败')
    }
  })
}

function addCard(data){
  data || (data = {
    comment:[],
    commentNum:0,
    content:'*******',
    pic:'******',
    pinfo:myInfo,
    publishTime:'****',
    thumbsNum:0,
    title:'****',
    type:'0'
  })
  const db = wx.cloud.database()
  const _ = db.command
  wx.cloud.callFunction({
    name:'myinfo',
    success:res=>{
      const myid=res.result.data[0]._openid
      const myInfo=res.result.data[0].info
      data.pinfo = myInfo
      db.collection('cards')
      .add({data}).then(res=>{
        const card_id = res._id
        db.collection('users')
        .where({
          _openid:myid
        })
        .update({
          data:{
            cards:_.push({
              each:[{id:card_id}]
            })
          }
        })
      })
      
    },
    fail:err=>{
      console.log(err)
    }
  })
}

function getMyCard(){
  wx.cloud.callFunction({
    name:'myinfo',
    success:res=>{
      console.log(res.result.data[0].cards)
    },
    fail: err => {
      console.log('err', err)
    }
  })
}

// function getMyCollection(){
//   wx.cloud.callFunction({
//     name:'myinfo',
//     success:res=>{
//       console.log(res.result.data[0].collection)
//     }
//   })
// }

// function getHistory(){
//   wx.cloud.callFunction({
//     name:'myinfo',   
//     success:res=>{
//       console.log(res.result.data[0].history)
//     }
//   })
// }

function dianzan(id){
  wx.cloud.callFunction({
    name:'dianzan',
    data:{
      _id: id
    },
    success:res=>{
      wx.showToast({
        title: '点赞成功',
        duration:1000,
        icon:'success'
      })
    }
  })
}

function cancelDianzan(id){
  const db = wx.cloud.database()
  const _ = db.command
  wx.cloud.callFunction({
    name:'myinfo',
    success:res=>{
      const myid = res.result.data[0]._openid
      db.collection('users')
      .where({
        _openid:myid
      })
      .update({
        data:{
          thumbcards:_.pull({
            id: id // 根据前端的来
          })
        }
      })
      db.collection('cards')
      .where({
        _id: id
      })
      .update({
        data:{
          thumbsNum:_.inc(-1)
        }
      })
    }
  })
}

function shoucang(id){
  wx.cloud.callFunction({
    name:'shoucang',
    data:{
      _id:id
    },
    success:res=>{
      wx.showToast({
        title: '收藏成功',
        duration:1000,
        icon:'success'
      })
      console.log(res)
    }
  })
}

function cancelShoucang(id){
  const db = wx.cloud.database()
  const _ = db.command
  wx.cloud.callFunction({
    name:'myinfo',
    success:res=>{
      const myid = res.result.data[0]._openid
      db.collection('users')
      .where({
        _openid:myid
      })
      .update({
        data:{
          collection:_.pull({
            id: id // 根据前端的来
          })
        }
      })
      db.collection('cards')
      .where({
        _id: id
      })
      .update({
        data:{
          commentNum:_.inc(-1)
        }
      })
    }
  })
}

function read(data, cb){
  // data || (data = {_id: '247d14ad60a0ae8500c929535ccdcf48'})
  // console.log(data);
  
  wx.cloud.callFunction({
    name:'read',
    data,
    success:res=>{
      cb && cb(res)
      // console.log('res', res)
    },
    fail:err=>{
      console.log('err', err)
    }
  })
}

function addFeedBack(feedback){
  const db = wx.cloud.database()
  const _ = db.command
  db.collection('feed')
  .add({
    data:{
      feedback: feedback
    }
  })
}

module.exports={
  getInfo,
  postInfo,
  updateInfo,
  getMyCard,
  // getMyCollection,
  // getHistory,
  shoucang,
  dianzan,
  cancelDianzan,
  cancelShoucang,
  read,
  getAllCards,
  getCardById,
  addComment,
  addCard,
  addFeedBack,
 }